import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        System.out.println("请输入：");
        Scanner scanner = new Scanner(System.in);
        if (scanner.hasNextInt()) {
            int x = scanner.nextInt();
            int y = scanner.nextInt();
            int z = scanner.nextInt();
            Sub sub = new Sub(x, y, z);
            System.out.println(sub.calculate());
        }
    }

}

class Base {

    private int x;
    private int y;

    public Base(int x, int y) {
        this.x = x;
        this.y = y;
    }

    public int getX() {
        return x;
    }

    public int getY() {
        return y;
    }

}

class Sub extends Base {
    private int z;  // 子类新增属性z

    public Sub(int x, int y, int z) {
        // 关键点1：必须首先调用父类构造方法
        // 通过super(x,y)初始化父类Base中的x,y属性
        super(x, y); // 必须作为构造方法的第一条语句

        // 关键点2：初始化子类特有属性z
        this.z = z;  // 使用this明确标识当前类属性
    }

    public int getZ() {
        return z;    // 提供子类属性的访问接口
    }

    public int calculate() {
        // 关键点3：通过继承机制获取各属性值
        // super.getX()：调用父类方法获取继承的x属性
        // super.getY()：调用父类方法获取继承的y属性
        // this.getZ()：调用子类方法获取新增的z属性
        return super.getX() * super.getY() * this.getZ();
    }
}
